import axios from "axios";
import '../mock'
import NProgress from "nprogress";
import "nprogress/nprogress.css";

NProgress.inc(0.4);
NProgress.configure({
    easing: "ease",
    speed: 1000,
    showSpinner: false
});
export function request(config) {
    // 实例配置
    // 等后端确认后会进行创建
    const instance = axios.create({
        timeout: 500
    });

    // 请求拦截
    instance.interceptors.request.use(
        config => {
            // 1.比如对config中的一些信息不符合服务器的要求
            // 2.比如每次发送网络请求时，都希望在界面中显示一个请求的图标
            // 3.某些网络请求（比如登录(token))，必须携带一些特殊的信息
            console.log(config.url + "请求拦截的数据为：");
            console.log(config);
            if (config.method === "get" || config.method === "post") {
                NProgress.start();
            }
            return config;
        },
        err => {
            console.error(err);
            return err;
        }
    );

    // 响应拦截
    instance.interceptors.response.use(
        res => {
            NProgress.done();
            console.log(config.url + "响应的result数据为：");
            console.log(res);
            return res.data;
        },
        err => {
            console.error(err);
            return err;
        }
    );

    // 返回实例
    return instance(config);
}